<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>随机点名</title>
    <script type="text/javascript">

        // 定义变量isRun用于控制游戏的运行状态
        var isRun=true;
        // 定义数组a存储所有参与抽签的人员名字
        // , "陈洁"
        var a = ["胡萧", "秦龙", "韩瑞", "颜乐健", "王旭", "陈崇正", "饶勇", "肖淼", "张霖长", "刘艳丽", "潘锦涛", "林荣涛", "杨红红", "徐黎清", "刘宇森", "李玄", "彭桂林", "叶世豪", "黄龙彬", "谢智文", "杨静炜", "谢武汛", "姜成", "陆志文", "莫恭涛", "李玺", "曾罗杰", "敬启涛", "袁茂雯", "许庆轩", "刘金涛", "袁中华", "朱皇鑫", "陈清伟", "冯磊", "何嘉豪", "戴顺"];
        // 定义数组a2用于存储已抽中的人员索引，以避免重复抽中
        var a2 = new Array();
        /**
         * 根据按钮点击事件处理抽签的开始和结束
         * @param {string} str - 传递的参数，无实际用途，用于响应点击事件
         */
        function action(str){
            // 获取抽签按钮的当前值
            var s = document.getElementById("bt").value;
            // 如果按钮值为"开始"，则开始抽签
            if(s=="开始"){
                // 设置isRun为true，表示游戏开始
                isRun=true;
                // 调用run函数开始抽签
                run();
                // 修改按钮文本为"结束"，用于结束抽签
                document.getElementById("bt").value="结束";
            }else{
                // 设置isRun为false，表示游戏结束
                isRun=false;
                // 修改按钮文本为"开始"，用于重新开始抽签
                document.getElementById("bt").value="开始";
            }
        }
        /**
         * 抽签函数，随机抽取数组a中的一个名字进行显示
         */
        function run(){
            // 随机生成一个索引值，范围为0到数组a的长度
            var i = Math.floor(Math.random() * a.length+ 1)-1;
            // 在页面上显示抽中的名字
            document.getElementById("show").innerHTML=a[i];
            // 如果游戏状态为结束（isRun==false），则检查是否已抽中过该名字
            if(isRun==false){
                // 初始化变量b为true，用于判断是否抽中新名字
                var b =true;
                // 遍历已抽中名字的索引数组a2
                for(var j in a2){
                    // 如果已抽中过该名字，则将b设置为false
                    if(a2[j]==i){
                        b=false;
                    }
                }
                // 如果抽中的是新名字
                if(b){
                    // 将该名字的索引添加到数组a2中，表示已抽中
                    a2[a2.length]=i;
                    // 结束函数运行，不再继续抽签
                    return;
                }
            }
            // 设置定时器，每10毫秒调用一次run函数，实现连续抽签的效果
            setTimeout("run()",10);
        }

    </script>

</head>

<body>
<h1>选人</h1>
<div style="text-align:center; margin-top:100px;width:100%;">
    <div id="show" style="margin:auto;font-size:20px;width:100%;height:30px; background:#FFEEFF"></div>
    <div style="margin-top:20px;">
        <input id="bt" type="button" onclick="action()" value="开始"/>
    </div>
</div>
</body>
</html>